From a062787191c40e2d7873a7be2120d40c1c4740e3 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Sun, 30 Apr 2006 09:26:01 +0100 Subject: [PATCH] Remove definition of NR_PIRQS and replace all uses with NR_IRQS. Allows removal of redundant check in pirq_guest_bind(). Signed-off-by: Keir Fraser --- xen/arch/ia64/xen/domain.c | 2 +- xen/arch/ia64/xen/irq.c | 6 +++--- xen/arch/x86/domain_build.c | 2 +- xen/arch/x86/i8259.c | 1 + xen/arch/x86/irq.c | 9 +++------ xen/arch/x86/x86_32/traps.c | 1 + xen/common/dom0_ops.c | 2 +- xen/include/asm-x86/irq.h | 1 - xen/include/xen/sched.h | 6 +++--- 9 files changed, 14 insertions(+), 16 deletions(-) diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c index 5a000448d9..ec67796876 100644 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -1237,7 +1237,7 @@ static void physdev_init_dom0(struct domain *d) { if (iomem_permit_access(d, 0UL, ~0UL)) BUG(); - if (irqs_permit_access(d, 0, NR_PIRQS-1)) + if (irqs_permit_access(d, 0, NR_IRQS-1)) BUG(); } diff --git a/xen/arch/ia64/xen/irq.c b/xen/arch/ia64/xen/irq.c index c8f8ec5b9e..813eb0dd51 100644 --- a/xen/arch/ia64/xen/irq.c +++ b/xen/arch/ia64/xen/irq.c @@ -435,9 +435,9 @@ int pirq_guest_unmask(struct domain *d) int irq; shared_info_t *s = d->shared_info; - for ( irq = find_first_bit(d->pirq_mask, NR_PIRQS); - irq < NR_PIRQS; - irq = find_next_bit(d->pirq_mask, NR_PIRQS, irq+1) ) + for ( irq = find_first_bit(d->pirq_mask, NR_IRQS); + irq < NR_IRQS; + irq = find_next_bit(d->pirq_mask, NR_IRQS, irq+1) ) { desc = &irq_desc[irq]; spin_lock_irq(&desc->lock); diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 6b38f6f052..ed83978799 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -809,7 +809,7 @@ int construct_dom0(struct domain *d, /* DOM0 is permitted full I/O capabilities. */ rc |= ioports_permit_access(dom0, 0, 0xFFFF); rc |= iomem_permit_access(dom0, 0UL, ~0UL); - rc |= irqs_permit_access(dom0, 0, NR_PIRQS-1); + rc |= irqs_permit_access(dom0, 0, NR_IRQS-1); /* * Modify I/O port access permissions. diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c index bb4f16cd5a..17bab16f9c 100644 --- a/xen/arch/x86/i8259.c +++ b/xen/arch/x86/i8259.c @@ -19,6 +19,7 @@ #include #include #include +#include #include /* diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index c144b9f415..58a84d1177 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -356,9 +356,9 @@ int pirq_guest_unmask(struct domain *d) unsigned int irq; shared_info_t *s = d->shared_info; - for ( irq = find_first_bit(d->pirq_mask, NR_PIRQS); - irq < NR_PIRQS; - irq = find_next_bit(d->pirq_mask, NR_PIRQS, irq+1) ) + for ( irq = find_first_bit(d->pirq_mask, NR_IRQS); + irq < NR_IRQS; + irq = find_next_bit(d->pirq_mask, NR_IRQS, irq+1) ) { if ( !test_bit(d->pirq_to_evtchn[irq], s->evtchn_mask) ) __pirq_guest_eoi(d, irq); @@ -410,9 +410,6 @@ int pirq_guest_bind(struct vcpu *v, int irq, int will_share) int rc = 0; cpumask_t cpumask = CPU_MASK_NONE; - if ( (irq < 0) || (irq >= NR_IRQS) ) - return -EINVAL; - retry: vector = irq_to_vector(irq); if ( vector == 0 ) diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c index fb0acc53d8..64c038c4ee 100644 --- a/xen/arch/x86/x86_32/traps.c +++ b/xen/arch/x86/x86_32/traps.c @@ -243,6 +243,7 @@ unsigned long do_iret(void) return regs->eax; } +#include BUILD_SMP_INTERRUPT(deferred_nmi, TRAP_deferred_nmi) fastcall void smp_deferred_nmi(struct cpu_user_regs *regs) { diff --git a/xen/common/dom0_ops.c b/xen/common/dom0_ops.c index a8ae3de2eb..49bb47840b 100644 --- a/xen/common/dom0_ops.c +++ b/xen/common/dom0_ops.c @@ -641,7 +641,7 @@ long do_dom0_op(XEN_GUEST_HANDLE(dom0_op_t) u_dom0_op) unsigned int pirq = op->u.irq_permission.pirq; ret = -EINVAL; - if ( pirq >= NR_PIRQS ) + if ( pirq >= NR_IRQS ) break; ret = -ESRCH; diff --git a/xen/include/asm-x86/irq.h b/xen/include/asm-x86/irq.h index 78cc148aca..4d64e53344 100644 --- a/xen/include/asm-x86/irq.h +++ b/xen/include/asm-x86/irq.h @@ -5,7 +5,6 @@ #include #include -#include #include #define IO_APIC_IRQ(irq) (((irq) >= 16) || ((1<<(irq)) & io_apic_irqs)) diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 84d710a9e5..178697f12e 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -15,6 +15,7 @@ #include #include #include +#include extern unsigned long volatile jiffies; extern rwlock_t domlist_lock; @@ -132,9 +133,8 @@ struct domain * domain's event-channel spinlock. Read accesses can also synchronise on * the lock, but races don't usually matter. */ -#define NR_PIRQS 256 /* Put this somewhere sane! */ - u16 pirq_to_evtchn[NR_PIRQS]; - DECLARE_BITMAP(pirq_mask, NR_PIRQS); + u16 pirq_to_evtchn[NR_IRQS]; + DECLARE_BITMAP(pirq_mask, NR_IRQS); /* I/O capabilities (access to IRQs and memory-mapped I/O). */ struct rangeset *iomem_caps; -- 2.30.2